﻿<?xml version="1.0"?><doc><assembly><name>
TCPluginBuilder
</name></assembly><members><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.ResourceManager"><summary>
  Returns the cached ResourceManager instance used by this class.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.Culture"><summary>
  Overrides the current thread's CurrentUICulture property for all
  resource lookups using this strongly typed resource class.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_Abstract"><summary>
  Looks up a localized string similar to Cannot generate plugin for abstract type {0}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_CleanIntermediate"><summary>
  Looks up a localized string similar to Error while clening intermediate directory..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_DuplicitRenameName"><summary>
  Looks up a localized string similar to Duplicit name {0} scpecified for renaming..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_DuplicitRenameType"><summary>
  Looks up a localized string similar to Duplicit type {0} specified for renaming..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_ExitCode"><summary>
  Looks up a localized string similar to Process {0} exited with code {1}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_Generating"><summary>
  Looks up a localized string similar to Error while generating plugins: {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_LoadAssembly"><summary>
  Looks up a localized string similar to Error while loading assembly: {0}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_LoadType"><summary>
  Looks up a localized string similar to Cannot load type {0}: {1}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_MissingPluginMethod"><summary>
  Looks up a localized string similar to Type {0} does not implement method {1} required by {2} applied onto method {3}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_NoDefaultCTor"><summary>
  Looks up a localized string similar to Cannot generate plugin for type {0} which has not default constructor..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_NotAPluginType"><summary>
  Looks up a localized string similar to Cannot gerenrate plugin for type {0}, which does not derive from supported plugin type..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_NotPublic"><summary>
  Looks up a localized string similar to Cannot generate plugin for non-public type {0}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_OpenGeneric"><summary>
  Looks up a localized string similar to Cannot generate plugin for open generic type {0}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.e_RemoveIntermediate"><summary>
  Looks up a localized string similar to Error while removing intermediate directory {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_CeateUserDefinedIntermediateDir"><summary>
  Looks up a localized string similar to Creating user-defined intermediate directory {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_CopyAssembly"><summary>
  Looks up a localized string similar to Copy assembly file {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_CopyOutput"><summary>
  Looks up a localized string similar to Copying output from {0} to {1}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_CopyPDB"><summary>
  Looks up a localized string similar to Copying pdb file from {0} to {1}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_CopyTemplate"><summary>
  Looks up a localized string similar to Copy template from {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.I_CreateProjectDir"><summary>
  Looks up a localized string similar to Create project directory {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_CreatingPluginForType"><summary>
  Looks up a localized string similar to Creating plugin for type {0}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_Executing"><summary>
  Looks up a localized string similar to Executing {0} {1}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_ExitCode"><summary>
  Looks up a localized string similar to {0}&gt; Exict code {1}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_ExtractTemplate"><summary>
  Looks up a localized string similar to Extract built-in template.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_GeneratingAssemblyInfo"><summary>
  Looks up a localized string similar to Generating assembly info.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_InvokingCompiler"><summary>
  Looks up a localized string similar to Invoking compiler {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_PluginType_wfx"><summary>
  Looks up a localized string similar to Plugin type: File System Plugin (wfx).
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_PredefinedIntermediateDir"><summary>
  Looks up a localized string similar to Using predefined intermediate directory {0}..
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_RemoveIntermediate"><summary>
  Looks up a localized string similar to Removing intermediate directory {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.i_TempIntermediateDir"><summary>
  Looks up a localized string similar to Creating temporary intermediate directory {0}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.Usage"><summary>
  Looks up a localized string similar to Usage:
{0} &lt;assembly&gt; &lt;parameters&gt;
assembly    A DLL assembly containing plugin definition
parameters:
/out &lt;outdir&gt; Output directory. Optional. Not set = same as assembly directory
/t &lt;type&gt;     Type name. Optional. Multiple.
              If specified at leas once only types specified will be used (otherwise all the types that qaulify to be TC plugin are used).
              Use name for Assembly.GetType().
/-wfx         Excludes wfx plugins
/-wlx         Excludes wlx plugins
/-wcx         Exclu [rest of string was truncated]";.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.w_DelDir"><summary>
  Looks up a localized string similar to Warning: Cannot delete directory {0}: {1}.
</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources.XcannotbeYwhenZisW"><summary>
  Looks up a localized string similar to {0} cannot be {1} when {2} is {3}..
</summary></member><member name="T:Tools.TotalCommanderT.PluginBuilder.My.Resources.Resources"><summary>
  A strongly-typed resource class, for looking up localized strings, etc.
</summary></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Builder.Main"><summary>Builds a plugin</summary></member><member name="T:Tools.TotalCommanderT.PluginBuilder.Builder"><summary>Builds a plugin</summary></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator.TemplateResourcename"><summary>Name of resource that contains embdeded template</summary></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.#ctor(System.Reflection.Assembly)"><summary>CTor from assembly</summary><param name="Assembly">Assembly to generate plugin for</param><exception cref="T:System.ArgumentNullException"><paramref name="Assembly" /> is null</exception><remarks><see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.OutputDirectory" /> is initilaized to <see cref="M:System.IO.Path.GetDirectoryName(System.String)" />(<paramref name="Assembly" />.<see cref="P:System.Reflection.Assembly.Location">Location</see>) when <paramref name="Assembly" />.<see cref="P:System.Reflection.Assembly.Location">Location</see> is not null; to <see cref="P:System.Environment.CurrentDirectory" /> otherwise.</remarks></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.#ctor(System.Reflection.Assembly,System.String)"><summary>CTor from assembly and output directory</summary><param name="Assembly">Assembly to generate plugin for</param><param name="OutputDirectory">Output directory to generate plugin into</param><exception cref="T:System.ArgumentNullException"><paramref name="Assembly" /> or <paramref name="OutputDirectory" /> is null</exception></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.#ctor(System.Type,System.String)"><summary>CTro from type and output directory</summary><param name="Type">Type to generate plugin for. Type must represent Total Commander plugin class - this is not checked in CTor but later.</param><param name="OutputDirectory">Output directory to generate plugin into</param><exception cref="T:System.ArgumentNullException"><paramref name="Type" /> or <paramref name="OutputDirectory" /> is null</exception></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._Assembly"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.Assembly"> property</see></summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.Assembly"><summary>Gets or sets assembly to generate plugin for</summary><exception cref="T:System.ArgumentNullException">Value beign set is null</exception></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._ProjectTemplateDirectory"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.ProjectTemplateDirectory" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.ProjectTemplateDirectory"><summary>Gets or sets directory to use project template from</summary><remarks>When null, build-in template is used</remarks></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._OutputDirectory"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.OutputDirectory" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.OutputDirectory"><summary>Gets or sets output directory to wtire plugin into</summary><exception cref="T:System.ArgumentNullException">Value being set is null</exception></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._IntermediateDirectory"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.IntermediateDirectory" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.IntermediateDirectory"><summary>Gets or sets intermediate directory where temporary files are stored</summary><returns>Intermediate directory to store temporary files in</returns><value>Intermediate directory to store temporary files in. Null to chose directory automatically</value><remarks>{0} is replaced by plugin name. When such directory does not exist, it is created. Setting this property to null, sets <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.CleanIntermediateDirectory" /> to true.</remarks></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._CleanIntermediateDirectory"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.CleanIntermediateDirectory" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.CleanIntermediateDirectory"><summary>Gets or sets value indicating if intermediate directory specified in <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.IntermediateDirectory" /> is deled after plugin generation</summary><returns>True when directory will be deleted after plugin generation, false when intermediate files will remain after generation.</returns><value>True to ensure that intermediate directory is deleted after compile, false to let files in intermediate directory. This property cannot be false when <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.IntermediateDirectory" /> is null.</value><exception cref="T:System.InvalidOperationException">Value is being set to false when <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.IntermediateDirectory" /> is null</exception></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._Types"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.Types" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.Types"><summary>Gets or sets types to generate plugins for</summary><value>All the types in array must be in assembly <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.Assembly" />; when null all public types that qualify to be Total Commander plugins will be used.</value><returns>Type plugins will be generated for. Null when all possible types will be used.</returns><remarks>When null, this property is set during generation process to actual types plugins are generated for.
 <para>Passing constructed generic type here is only way to generate plugin of generic type. Otherwise plugin generator skips generic types.</para></remarks></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._Filer"><summary>Contains value of the <see cref="M:Microsoft.VisualBasic.Strings.Filter(System.Object[],System.String,System.Boolean,Microsoft.VisualBasic.CompareMethod)" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.Filer"><summary>Gets or sets plugin type filter. Only plugins of types according to given OR-mask will be generated.</summary><returns>OR-ed values of <see cref="T:Tools.TotalCommanderT.PluginType" /> type indicating which plugin types are generated</returns><value>Set plugin types to generate plugins for. By default all the plugin types are generated.</value></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._RenamingDictionary"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.RenamingDictionary" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.RenamingDictionary"><summary>Dictionary containing <see cref="P:System.Type.FullName" />s as key and plugin files names (witout extension) as values.</summary><remarks>Generated plugin files are named according to this dictionary. When dictionary entry for any type is missing, plugin is named according to full name of type.
 <para><see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.RenamingDictionary" /> takes precedence to <see cref="P:Tools.TotalCommanderT.TotalCommanderPluginAttribute.Name" />.</para></remarks></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._LogToConsole"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.LogToConsole" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.LogToConsole"><summary>Gets or sets value indicationg if generator will log its progress to console</summary></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._CopyPDB"><summary>COntains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.CopyPDB" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.CopyPDB"><summary>Gets or sets value indicating if pdb file for plugin will be copied to outpud directory</summary></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._SnkPath"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.SnkPath" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.SnkPath"><summary>Gets or sets path to snk (strong name key) file to sign wrapper assembly with</summary><remarks>When this property is non-null plugin wrapper assembly is given <see cref="T:System.Reflection.AssemblyKeyFileAttribute" /> and it is signed using the sn.exe utility.</remarks></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._vcbuild"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.VCBuild" /></summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.VCBuild"><summary>Gets to sets path to vcbuild.exe</summary><remarks>Default value is stored in settings</remarks></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator._SN"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.SN" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.Generator.SN"><summary>Gets or sets path to the sn.exe utility used fro signing assemblies</summary><remarks>Used only when <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.SnkPath" /> is non-null</remarks></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.Generate"><summary>Generates plugins</summary></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.Generate(System.Type)"><summary>Generates plugin from type</summary><param name="Type">Type to generate plugin for</param><returns>Path to generated plugin file</returns><exception cref="T:System.ArgumentNullException"><paramref name="Type" /> is null</exception><exception cref="T:System.ArgumentException"><paramref name="Type" /> is open generic type -or- <paramref name="Type" /> is abstract -or- <paramref name="Type" /> has not acessible default CTor -or- <paramref name="Type" /> is not public</exception><exception cref="T:System.MissingMethodException">Plugin base type declares method with <see cref="T:Tools.TotalCommanderT.PluginMethodAttribute" /> pointing to method that is not member of that type.</exception><exception cref="T:System.Reflection.AmbiguousMatchException">Plugin base type declares method with <see cref="T:Tools.TotalCommanderT.PluginMethodAttribute" /> pointing to method that is overloaded on that type.</exception></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.PreparePlugin(System.Type,System.String,System.Type,System.String)"><summary>Prepares files for plugin</summary><param name="Type">Type to prepare project for</param><param name="ProjectDirectory">Directory peoject is stored in</param><param name="PluginType">Plugin base class</param><param name="DefinedBy">C++ #define to define call of CTOr of plugin</param><exception cref="T:System.MissingMethodException"><paramref name="PluginType" /> has method decorated with <see cref="T:Tools.TotalCommanderT.PluginMethodAttribute" /> with <see cref="P:Tools.TotalCommanderT.PluginMethodAttribute.ImplementedBy" /> pointing to method that is not member of <paramref name="PluginType" />.</exception><exception cref="T:System.Reflection.AmbiguousMatchException"><paramref name="PluginType" /> has method decorated with <see cref="T:Tools.TotalCommanderT.PluginMethodAttribute" /> with <see cref="P:Tools.TotalCommanderT.PluginMethodAttribute.ImplementedBy" /> pointing to method that is overloaded on <paramref name="PluginType" />.</exception></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.MakeAssemblyInfo(System.Type,System.String)"><summary>Writes the AssemblyInfo2.cpp file</summary><param name="Type">Plugin type</param><param name="ProjectDirectory">Project directory</param></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.Log(System.String,System.Object[])"><summary>Log a log information</summary><param name="Text">Formating string</param><param name="Obj">Format patameters</param><seelaso cref="M:System.String.Format(System.String,System.Object)" /></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.Exec(System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.String})"><summary>Executes a process and waits for it to terminate</summary><param name="Program">Program to execute</param><param name="CommandLine">Program arguments</param><returns>Program exit code</returns></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.MakeWriteable(System.String)"><summary>Removes the readonly atribute from all the files in given directory (recursively)</summary><param name="dir">Directory to remove attributes from</param></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.GetSafeName(System.String)"><summary>Removes file-name-invalid characters from string</summary><param name="Name">String to remove chaRACTERS FROM</param><returns><paramref name="Name" /> with <see cref="M:System.IO.Path.GetInvalidFileNameChars" /> removed</returns></member><member name="F:Tools.TotalCommanderT.PluginBuilder.Generator.Provider"><summary>C++ code provider</summary></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.GetTypeSignature(System.Type)"><summary>Gets expression to ceate instance of type in C++</summary><param name="Type">Type to get expression for</param></member><member name="M:Tools.TotalCommanderT.PluginBuilder.Generator.DeleteDir(System.String,Tools.TotalCommanderT.PluginBuilder.Generator,System.Boolean)"><summary>Attempts to recursivelly delete directory</summary><param name="Dir">Directory to be deleted</param><remarks>Skips subdirectories than cannot be deleted, throws an exception when file cannot be deleted</remarks><param name="Instance">Instance of the <see cref="T:Tools.TotalCommanderT.PluginBuilder.Generator" /> class. Used only for warning logging. Can be null.</param><param name="ContentOnly">Does not delete the <paramref name="Dir" /> directory, only deletes all its content.</param></member><member name="T:Tools.TotalCommanderT.PluginBuilder.Generator"><summary>Generates a plugin</summary><remarks>
 This class generates one or more Total Commander pluggin wrappers from given assembly/types.
 Wrapper generation process can be invoked from command line or programatically using <see cref="T:Tools.TotalCommanderT.PluginBuilder.Generator" /> API.
 Separate wrapper is generated for each plugin class.
 Wrapper generation consists of following steps:
 <list type="number"><item>Prepare wrapper template - Template is copied to intermediate directory (either from specified template directory or from built-in template)</item><item>Configure tamplate - Type wraper is being generated for is inspected to detect plugin type and which methods the plugin implements. Appropriate settings are generated to template files. Namely: Conditional compilation is set up to generate only those functions supported by plugin; Module export definition is written; Assembly info is generated.</item><item>Invoke compiler - C++ compiler vcbuild.exe is executed to compile the wrapper. You need to have Visual Studio with C++ support to be installed on your machine. See <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.VCBuild" />.</item></list>
 Following rules apply to plugin being generated:
 <list type="bullet"><item>Plugin class must be non-abstract, must have defualt (parameter-less) constructor and must notbe open generic type. When class that looks like plugin class is found, but does not meet these requirements it is ignored.</item><item>Plugin class must derive from one of plugin types like <see cref="T:Tools.TotalCommanderT.FileSystemPlugin" />.</item><item>Plugin class overrides its's base class methods to define plugin functionality. A few methods must be overriden. Majority of methods is optional.</item><item>When non-compulsory method is overriden in derived class, wrapped generator examines it. When it is decorated with <see cref="T:Tools.TotalCommanderT.MethodNotSupportedAttribute" /> it is NOT generated for the plugin; otherwise it is.</item><item>Plugin class can, of course, define as many as you want additional methoda, but those methods are not part of plugin contract. When a new version of Total Commander is issued that defines more plugin API functions, those functions are not automatically supported by the generator. A new version of generator must be issued as well.</item><item>When plugin class is decorated with <see cref="T:Tools.TotalCommanderT.NotAPluginAttribute" />, it is skipped from plugin generation.</item><item>Optionaly plugin class can be decorated with <see cref="T:Tools.TotalCommanderT.TotalCommanderPluginAttribute" /> to precise plugin generation.</item><item>Plugin assembly is given correct plugin extension by plugin type.</item><item>Plugin assembly inherits certain attributes from assembly plugin type is defined in or from plugin type istelf. Namely:
 <list type="table"><item><term><see cref="T:System.Reflection.AssemblyVersionAttribute" /></term><description>Got from assembly's <see cref="T:System.Reflection.AssemblyVersionAttribute" /> (when defined); otherwise from <see cref="P:System.Reflection.AssemblyName.Version" />.</description></item><item><term><see cref="T:System.Reflection.AssemblyTrademarkAttribute" />, <see cref="T:System.Reflection.AssemblyCopyrightAttribute" />, <see cref="T:System.Reflection.AssemblyProductAttribute" />, <see cref="T:System.Reflection.AssemblyCompanyAttribute" />, <see cref="T:System.Reflection.AssemblyConfigurationAttribute" />, <see cref="T:System.Resources.NeutralResourcesLanguageAttribute" />, <see cref="T:System.Reflection.AssemblyFileVersionAttribute" />, <see cref="T:System.Reflection.AssemblyInformationalVersionAttribute" /></term><description>Derived from assembly attributes (when set; ignored when not set)</description></item><item><term><see cref="T:System.Runtime.InteropServices.GuidAttribute" /></term><description>Got from <see cref="P:Tools.TotalCommanderT.TotalCommanderPluginAttribute.AssemblyGuid" /> of plugin type (when set; ignored when not set)</description></item><item><term><see cref="T:System.Reflection.AssemblyTitleAttribute" />, <see cref="T:System.Reflection.AssemblyDescriptionAttribute" /></term><description>Got from <see cref="P:Tools.TotalCommanderT.TotalCommanderPluginAttribute.AssemblyTitle" /> and <see cref="P:Tools.TotalCommanderT.TotalCommanderPluginAttribute.AssemblyDescription" /> of plugin type when set; otherwise got from appropriate assembly attributes when set; otherwise ignored.</description></item></list></item><item>When giving wrapper asembly a string name (using <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.SnkPath" />) the assembly plugin is defined in must have string name as well.</item><item>Wrapper name is specified by (in order of presedence): <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.RenamingDictionary" />, <see cref="P:Tools.TotalCommanderT.TotalCommanderPluginAttribute.Name" />, <see cref="P:System.Type.FullName" />.</item></list>
 Wrapped debugging info is copied to target only when <see cref="P:Tools.TotalCommanderT.PluginBuilder.Generator.CopyPDB" /> is set. Do not set this to true when name of your plugin DLL and plugin wrapper are same but the extension. (Your debugging info will be overwritten with almost useless debugging info of wrapper.)
 <para>To genereta plugin wraper for your plugin from Visual Stuidio environment as part of build process, simply add plugin generator tool TCPluginBuilder.exe as post-build event. Example post-build event:</para><example>This command line invokes TCPluginBuilder.exe and generates plugin(s) from output of project, places the w?x files into project output directory and uses project obj directory as its intermediate directory. Intermediate files are not deleted. Built-in template is used. w?x assembly is not signed.
 <code>TCPluginBuilder.exe "$(TargetPath)" /out "$(TargetDir)\" /int "$(ProjectDir)obj\$(ConfigurationName)" /keepint</code></example><para><b>Deploying the plugin:</b></para><para>When Total Commander refuses to load your plugin try following troubleshoting tips:</para><list type="bullet"><item>Place plugin files inside the same directory as TOTALCMD.EXE or one of subdirectories.</item><item>Windows Vista: If you are ceating subdirectory inside Total Commander directory you will copy plugin for testing during development and you are changing rights on the directory in order to get rid of UAC, do not make yourself owner of the directory.</item><item>Restart Total Commander in order to test a new version of your plugin.</item></list></remarks></member><member name="M:Tools.TotalCommanderT.PluginBuilder.ExitCodeException.#ctor(System.Int32,System.String)"><summary>CTor</summary><param name="ExitCode">Process exit code</param><param name="process">Process name</param></member><member name="F:Tools.TotalCommanderT.PluginBuilder.ExitCodeException._Process"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.ExitCodeException.Process" /> property</summary></member><member name="F:Tools.TotalCommanderT.PluginBuilder.ExitCodeException._ExicTode"><summary>Contains value of the <see cref="P:Tools.TotalCommanderT.PluginBuilder.ExitCodeException.ExicTode" /> property</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.ExitCodeException.Process"><summary>Gets process that returned exit code</summary></member><member name="P:Tools.TotalCommanderT.PluginBuilder.ExitCodeException.ExicTode"><summary>Gets exitcode returned by process</summary></member><member name="T:Tools.TotalCommanderT.PluginBuilder.ExitCodeException"><summary>Exception thrown when process exited with unecpedted exit code</summary></member></members></doc>